package com.bjsxt.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.bjsxt.commons.pojo.BaizhanResult;
import com.bjsxt.mapper.TbItemParamMapper;
import com.bjsxt.pojo.TbItemParam;
import com.bjsxt.service.ItemParamService;
import com.bjsxt.utils.IDUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * @author coder_z
 * @date 2023/2/7
 **/
@Service
public class ItemParamServiceImpl implements ItemParamService {
    @Autowired
    private TbItemParamMapper ItemParamMapper;
    @Override
    public BaizhanResult selectAll() {
//        查询所有 没有条件 所以没有参数
        List<TbItemParam> list = ItemParamMapper.selectList(null);
//        统一返回结果
        return BaizhanResult.ok(list);
    }

    @Override
    public BaizhanResult haveItemParam(long itemCatId) {
//       在商品规格表中根据商品分类id匹配一列的值
        QueryWrapper<TbItemParam> wrapper = new QueryWrapper<TbItemParam>().eq("item_cat_id", itemCatId);
        TbItemParam tbItemParam = ItemParamMapper.selectOne(wrapper);
//        如果==null 说明当前没有添加过规格参数模板
        if(tbItemParam==null){
            return BaizhanResult.ok();
        }
        return BaizhanResult.error("服务器端消息-已经添加过该分类");
    }

    /**
     * 增加规格参数
     * @param tbItemParam
     * @return
     */
    @Override
    public BaizhanResult insert(TbItemParam tbItemParam) {
//       通过工具类生成主键
        tbItemParam.setId(IDUtils.genItemId());
//      new date给规格参数生成和更新时间戳
        Date date = new Date();
        tbItemParam.setCreated(date);
        tbItemParam.setUpdated(date);
        int insert = ItemParamMapper.insert(tbItemParam);
        if(insert==1){
            return BaizhanResult.ok();
        }
        return BaizhanResult.error("服务器端消息-新增商品规格参数失败");
    }

    /**
     * 商品规格参数删除
     * @param id
     * @return
     */

    @Override
    public BaizhanResult deleteById(long id) {
//        返回受影响行数
        int i = ItemParamMapper.deleteById(id);
        if(i==1){
            return BaizhanResult.ok();
        }
        return BaizhanResult.error("服务器端消息-删除商品规格参数失败");
    }

    /**
     * 根据商品分类id查询商品参数模板信息
     * @param itemCatId
     * @return
     */
    @Override
    public BaizhanResult selectItemParamByItemCatId(long itemCatId) {
//       在商品规格表中根据商品分类id匹配一列的值
        QueryWrapper<TbItemParam> wrapper = new QueryWrapper<TbItemParam>().eq("item_cat_id", itemCatId);
        TbItemParam tbItemParam = ItemParamMapper.selectOne(wrapper);
//        如果==null 说明当前没有添加过规格参数模板
        if(tbItemParam!=null){
            return BaizhanResult.ok(tbItemParam);
        }
        return BaizhanResult.error("服务器端消息-商品规格参数不存在");
    }


}
